package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.dto.ClaimsRequestExcel;
import com.ruoyi.system.domain.dto.ClaimsRequestExcel2;
import com.ruoyi.system.domain.dto.LuntaiClaimsRequestDto;
import org.apache.ibatis.annotations.Param;

/**
 * 【请填写功能名称】Mapper接口
 *
 * @author ruoyi
 * @date 2025-03-13
 */
public interface LuntaiClaimsRequestMapper {
    /**
     * 查询【请填写功能名称】
     *
     * @param id 【请填写功能名称】主键
     * @return 【请填写功能名称】
     */
    public LuntaiClaimsRequest selectLuntaiClaimsRequestById(Integer id);

    /**
     * 查询【请填写功能名称】列表
     *
     * @param luntaiClaimsRequest 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<LuntaiClaimsRequest> selectLuntaiClaimsRequestList(LuntaiClaimsRequest luntaiClaimsRequest);

    /**
     * 新增【请填写功能名称】
     *
     * @param luntaiClaimsRequest 【请填写功能名称】
     * @return 结果
     */
    public int insertLuntaiClaimsRequest(LuntaiClaimsRequest luntaiClaimsRequest);

    /**
     * 修改【请填写功能名称】
     *
     * @param luntaiClaimsRequest 【请填写功能名称】
     * @return 结果
     */
    public int updateLuntaiClaimsRequest(LuntaiClaimsRequest luntaiClaimsRequest);

    /**
     * 删除【请填写功能名称】
     *
     * @param id 【请填写功能名称】主键
     * @return 结果
     */
    public int deleteLuntaiClaimsRequestById(Integer id);

    /**
     * 批量删除【请填写功能名称】
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLuntaiClaimsRequestByIds(Integer[] ids);

    Integer getStoreId(Integer userId);

    List<LuntaiClaimsRequestDto> selectLuntaiClaimsRequestList2(LuntaiClaimsRequestDto requestDto);

    SysUser getAdminInfo(Long userId);

    LuntaiClaimsRequest getClaimRequest(Integer id);

    LuntaiTyreInstallLog getTyreById(Integer tyreId);

    LuntaiTyreInstallLog getAfterTyreInfo(String code);

    LuntaiUserCar getCarById(Integer id);

    LuntaiTyreInstallRequest getInstallTyreRequestByTyreId(Integer id);

    LuntaiStore getStoreByStoreId(Integer storeId);

    String getOrderSn(@Param("requestId") Integer requestId, @Param("type") Integer type);

    LuntaiTyre getTyre(Integer typeBrandId);

    LuntaiUser getUserInfo(Integer userId);

    void updateClaimOrder(@Param("claimId")Integer claimId, @Param("status")Integer status, @Param("adminId")Integer adminId);

    Integer checkCodeEx(String code);

    void replaceTryeByClaims(LuntaiTyreInstallLog luntaiTyreInstallLog);

    void cancelOldTyre(Integer tyreId);

    List<ClaimsRequestExcel> selectLuntaiClaimsRequestList3(LuntaiClaimsRequestDto requestDto);

    List<String> getAllAdminRoleOpenIds();

    void addAuditLog(@Param("sourceId") Integer sourceId,
                     @Param("type") Integer type,
                     @Param("result") Integer result,
                     @Param("adminId") Long adminId,
                     @Param("adminPhone") String adminPhone);

    List<ClaimsRequestExcel2> exportClaimRequestList2();
}
